package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

/**
 * 夜行车分析服务
 */
public interface DubboAnalyzeNightService {

	/**
	 * 对夜行车进行分析并获取分页结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param ratio 夜行比例
	 * @param includeTaxi 是否含出租车
	 * @param page 分页
	 * @return Page &lt; NightVehicleDto &gt; ：包含夜行车信息 的分页集合
	 */
	public ResultPojo analyzeNightVehicle(String token, String licenseType, String licenseNum, Date startDay, Date endDay, float ratio,boolean includeTaxi, Page page);


	/**
	 * 导出夜行车分析结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param ratio 夜行比例
	 * @param includeTaxi 是否含出租车
	 * @param startIndex 导出起始数据，默认 1
	 * @param endIndex 导出起始数据，默认 5000
	 * @return List &lt; NightVehicleDto &gt; ：包含夜行车信息 的集合
	 */
	public ResultPojo expNightVehicle(String token, String licenseType, String licenseNum, Date startDay, Date endDay, float ratio,boolean includeTaxi);
	public ResultPojo expNightVehicle(String token, String licenseType, String licenseNum, Date startDay, Date endDay, float ratio,boolean includeTaxi,int startIndex,int endIndex);

	/**
	 * 夜行车分析结果 总记录数
	 * @param token
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param ratio 夜行比例
	 * @param includeTaxi 是否含出租车
	 * @return 总记录数
	 */
	public ResultPojo countNightVehicle(String token, String licenseType, String licenseNum, Date startDay, Date endDay, float ratio,boolean includeTaxi);

	/**
	 * 车辆每小时通行次数
	 * 每个参数均不能为空
	 *
	 * @param btime
	 * @param etime
	 * @param licenseType
	 * @param licenseNum
	 * @return
	 */
	public ResultPojo getVehiclePerHourFreq(String token,String btime, String etime, String licenseType, String licenseNum);

	/**
	 * 车辆每天通行次数
	 * 每个参数均不能为空
	 *
	 * @param btime
	 * @param etime
	 * @param licenseType
	 * @param licenseNum
	 * @return
	 */
	public ResultPojo getVehiclePerDayFreq(String token,String btime, String etime, String licenseType, String licenseNum);

	/**
	 * 车辆夜间行驶轨迹
	 * 每个参数均不能为空
	 *
	 * @param btime
	 * @param etime
	 * @param licenseType
	 * @param licenseNum
	 * @return
	 */
	public ResultPojo getVehicleNightTrack(String token,String btime, String etime, String licenseType, String licenseNum);

	/**
	 * 车辆夜间活跃点位
	 *
	 * @param btime
	 * @param etime
	 * @param licenseType
	 * @param licenseNum
	 * @return
	 */
	public ResultPojo getNigthPoints(String token,String btime, String etime, String licenseType, String licenseNum);

}
